查看原文
其他

我做到了!《斗罗大陆》人物关系可视化

李运辰 Python研究者 2022-09-11

大家好,我是辰哥(文末送两本书


今天辰哥来教大家从一本小说/名著里面提取出人名,并对人名之间的关系进行统计(同一段里面人名两两出现),根据人名之间的关系进行绘制关系图--gephi


核心知识点

  1. 提取文本中人名

  2. 统计文本中人物之间的关系

  3. 绘制网络关系图


先看一下效果



01


jieba小例子



在开始分析《斗罗大陆》小说之前,先来一个小例子让大家对jieba库的使用有个印象。


说明:

可以看到文本内容结果jieba库分词之后,可以获取每一个的词性。咱们这里需要获取人名,只需要挑选出nr的词性,并统计每个词的次数。




这里就给大家演示讲解了jieba从文本提取人名的小例子,下面以小说《斗罗大陆》为例,讲解如何去提取里面人物名,并建立有向图,最后绘制人物关系图。


02


提取人物关系


1.制作姓名字典


部分结果如上图,通过提取小说中里面的所有名字,取出前100个并按频率从高到低写入txt。不过发现一些是不完整无用一个人物多名等情况。进行整理之后如下。




2.建立人物有向关系



通过构建的人物名在每一段中两两出现的进行统计。最后建立出来,人物节点和人物之间的联系。



3.保存到csv


结果如下:





03


人物关系网图



这里使用的是gephi进行绘制,gephi下载地址如下:

https://gephi.org/


下载安装之后,开始导入刚刚保存的node.csvedge.csv数据绘制人物关系网图


1.新建工程&导入数据


新建工程->选择数据资料tab,点击输入数字表格,添加节点和边的csv数据。



2.调整相关的样式


3.修改字体,显示相应的标签



4.选择一个自动化布局的方式,预览,再调整相关参数




5. 最终点击左下角导出图片




04


小结



本文讲解了提取文本中人名并统计文本中人物之间的关系,最后绘制网络关系图不明白的地方可以在下方留言或者后台加辰哥微信,一起交流。


最后说一声:原创不易,求给个赞、在看、评论


05


送书


为感谢各位读者的喜欢,公众号后续会陆续发起各种奖品活动(电子产品、书籍、小礼品等)用于回馈读者们。辰哥这次推荐的是电子工业出版社《对比Excel,轻松学习Python数据分析》。


书籍介绍:持续3年稳居当当、京东畅销榜前列。既可以作为系统学习数据分析流程操作的说明书,也可以作为一本数据分析师案头必备的实操工具书,随时备查。本书通过对比Excel 功能操作去学习Python 的实现代码,而不是直接上来就学习Python代码,大大降低了学习门槛,消除了读者对代码的恐惧心理。


更多介绍可以扫码查看


「送书规则」

本次送书共送出 2,均采用抽奖方式送出。
开奖时间:2021年06月13日13:00,逾期不候。

参加方式:添加辰哥微信(必须,公众号后台有联系方式,中奖后添加则无效,谨记),点击本文右下角在看。

抽奖入:在公众号Python研究者后台回复“抽奖02”即可参与。

大家也可以邀请好友助力,提升获奖几率哦~~


今日推荐
太方便了!利用Python对批量Pdf转Word
我去!爬虫遇到字体反爬,哭了 再见Xshell、Xftp!Python执行Linux命令、上传下载远程文件


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存